package com.carbon.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.List;

import com.carbon.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 商品信息(Goods)表实体类
 *
 * @author WangFK
 * @since 2023-08-24 13:51:18
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "Goods对象", description = "商品信息")
@TableName("goods")
public class Goods implements Serializable {
    private static final long serialVersionUID = 1L;
    @Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC, prompt = "编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 商品名
     */
    @Excel(name = "商品名")
    @ApiModelProperty(value = "商品名")
    private String goodsName;

    /**
     * 商品价格
     */
    @Excel(name = "商品价格")
    @ApiModelProperty(value = "商品价格")
    private String goodsPrice;

    /**
     * 商品总数
     */
    @Excel(name = "商品总数")
    @ApiModelProperty(value = "商品总数")
    private Integer goodsTotal;

    /**
     * 剩余商品数量
     */
    @Excel(name = "剩余商品数量")
    @ApiModelProperty(value = "剩余商品数量")
    private Integer goodsNum;

    /**
     * 商品类型 0 物料 1 原料
     */
    @Excel(name = "商品类型 ",readConverterExp="0=物料,1=原料")
    @ApiModelProperty(value = "商品类型 0 物料 1 原料")
    private String goodsType;

    /**
     * 商品状态 0 正常
     */
    @Excel(name = "商品状态",readConverterExp="0=正常,1=禁用")
    @ApiModelProperty(value = "商品状态 0 正常")
    private String goodsStatus;

    /**
     * 商品图片
     */
    @ApiModelProperty(value = "商品图片")
    private String goodsImg;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "修改人")
    private String updateBy;

    /**
     * 修改时间
     */
    @Excel(name = "修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 逻辑删除 0 未删除
     */
    @ApiModelProperty(value = "逻辑删除 0 未删除")
    private String delFlag;
    @TableField(exist = false)
    private String index;
    /**
     * 补货商品数量
     */
    @TableField(exist = false)
    private Integer replenishmentNum;
    /**
     * 商品级联数据
     */
    @TableField(exist = false)
    private List<Integer> goodsSelectName;
    /**
     * 所属物料
     */
    @Excel(name = "物料编号")
    private String recordId;
    /**
     * 物料型号
     */
    @Excel(name = "物料型号")
    private String recordShape;
    /**
     * 物料规格 1小 2中 3大
     */
    @Excel(name = "物料规格",readConverterExp="1=小,2=中,3=大")
    private String recordSize;
    /**
     * 所属父类名
     */
    @Excel(name = "物料型号")
    private String recordName;

    /**
     * 所属父类名
     */
    @Excel(name = "所属父类")
    private Integer providerId;

    /**
     * 排序
     */
    @Excel(name = "排序")
    private String sort;

    /**
     * 物料类型 1 成品 2原料
     */
    @Excel(name = "物料类型",readConverterExp="1=成品,2=原料")
    private String recordType;
    /**
     * 父id
     */
    private Integer parentId;
    /**
     * 物料价格
     */
    @Excel(name = "物料价格")
    private String recordPrice;

    /**
     * 仓库id
     */
    private Integer wareId;

    /**
     * 生产批号
     */
    private Integer batchId;

    /**
     * 锁定库存
     */
    private String inventoryLock;


    /**
     * 库存上限
     */
    @Excel(name = "库存上限")
    private String inventoryUp;


    /**
     * 库存下限
     */
    @Excel(name = "库存下限")
    private String inventoryDown;


}

